The popularity and demand for collaborative and distributed computing environments has increased in the recent years due to the popularity of the internet, networks and portal frameworks. A wide variety of enterprises, ranging from large corporations to small development projects, often have use for such software. For example, employees, developers and other users within an enterprise often work on projects in groups, collaborating with one another as the project progresses. Such groups of users frequently need access to the same resources, materials and information on certain topics. Thus, software designed to allow a group of users on a network to work simultaneously on a project is desirable. Present day solutions typically provide services for communicating (such as email), group document development, scheduling, and tracking. For example, groupware is a form of application software that integrates work on a single project by several concurrent users on separate workstations on a computer network.
One area where these trends have been implemented has been in the context of content frameworks referred to as portals. A portal can be thought of as a gateway or an access point for users to various types of content and other collections of information. One example of a portal server is the WebLogic® Portal product available from BEA Systems Inc. Portals are typically visually represented and often have a portal page for allowing users to navigate the data provided therein. Portals are ideal for implementations of groupware programs since multiple users can be provided a single point of access to a wide variety of information.
There are several available groupware products deployed on portal frameworks and available on the market today. Most of them allow some form of user collaboration in an effort to increase productivity. However, these solutions are often very rigid in their requirements for the data and services they provide. For example, most of such software is geared toward specific enterprises, groups or projects and allow little in terms of customization. What is needed is a more abstract, dynamic and user-friendly approach, one that would provide a more fluid and adaptable system of collaboration between users over a distributed computing environment.
Security is often a desirable and necessary feature for these systems of collaboration, such as forms of authentication, authorization and other access control management. The present day solutions often provide security for such systems based on user authentication. Once a user logs into the system, he or she is typically authenticated and assigned a set of permissions that govern the user's access to resources in the enterprise application. For example, a user may be allowed to access or modify certain files or documents and denied from viewing other resources. However, a user's permissions change through time and with a large number of users, such changes become difficult to manage. Other approaches may center around the data or resources themselves, but are typically more complex and inefficient. A more dynamic yet a secure approach can be provided, that offers the ability of an enterprise to adapt the users to a changing environment and changing permissions, while maintaining simple, efficient and tight evaluation of user access control.